The present invention relates generally to computing systems, and more particularly, to systems and methods for data distribution.
Significant effort has been devoted to optimizing the operation of large networks such as, for example, wide area networks (WAN""s), the Internet, and the World-Wide-Web (xe2x80x9cthe Webxe2x80x9d). To date, however, those efforts have largely been directed at improving the operation of networks from the perspective of consumers of data. For example, in a network such as the Web, when a Web browser issues a request for a Web page, without network optimization it may be necessary to traverse a large portion of the network in order to reach the one Web server on which the requested page exists. Of course, traversing a large portion of the Web can take a relatively long time. One technique for addressing this limitation has been to distribute the same data items on many servers throughout the network. When a request for a distributed data item is made, it is likely that the data item can be accessed quickly without traversing a large portion of the Web.
While efforts have been made to improve the performance of networks for consumers of data, little has been done to address the needs of data providers. Many individuals and small businesses operate their own data servers, which may be, for example, Web servers. These same individuals and small businesses often have limited resources for operating these servers. For example, an individual""s or small business"" server systems may have limited storage and processing capacity. Also, the network connections maintained by individuals and small businesses often have limited capacity. For example, individuals and small businesses often use digital subscriber lines (DSL) connections, which have a limited capacity for uploading data. This capacity can quickly become saturated, especially when numerous simultaneous data requests are made to the same data server.
Illustrative systems and methods for distributing data while conserving data content providers"" computing resources are disclosed herein. In an illustrative embodiment, a first computing system, which may be referred to as a proxy server, identifies data items located on a data provider""s server that are infrequently changed, i.e. static data items. The identification step may be performed in any of numerous different ways including for example, via identification of static data items by the data provider""s server, or by searching through the data files on a data provider""s server to identify files that have not recently changed. A copy of the data items identified as infrequently changing are communicated from the data provider""s server and received at the first computing system. The first computing system forwards copies of the static data items to at least one other computing system, which is is also a proxy server. Thereafter, when a request is received at the first computing system for one of the static data items, a message is sent to the data provider""s server indicating that the data item has been requested. The first computing system communicates instructions to the third computing system to forward the data item to the computer system that requested the data item.